package Day_0208.Redis;

/**
 * @author zxc
 * @date 2023/02/08 12:00
 **/
public class Redis_Datatype {
    public static void main(String[] args) {
        /**
         * redis的数据类型，以及每种数据类型的使用场景
         * ===》
         * (一)String
         * 1.最常规的set/get操作，value可以是String，也可以是数字。
         * 2.一般做一些复杂的计数功能的缓存。
         *
         * (二)hash
         * 1.这里value存放的是结构化的对象，比较方便的就是操作其中的某个字段。
         * 2.在做单点登录的时候，使用list数据结构中的value存储用户信息，以cookieId作为key，设置30分钟为缓存过期时间，能很好的模拟出类似session的效果。
         *
         * (三)list
         * 1.使用List的数据结构，可以做简单的消息队列的功能。
         * 2.可以利用lrange命令，做基于redis的分页功能，性能极佳，用户体验好。
         * 3.生产者和消费者的场景。
         * LIST可以很好的完成排队，先进先出的原则。
         *
         * (四)set
         * 1.因为set堆放的是一堆不重复值的集合。
         * ===》 所以，可以做全局去重的功能。
         * 2.为什么不用JVM自带的Set进行去重？
         * 因为我们的系统一般都是集群部署，使用JVM自带的Set，比较麻烦，难道为了一个做一个全局去重，再起一个公共服务，太麻烦了。
         * 3.利用交集、并集、差集等操作，可以计算共同喜好，全部的喜好，自己独有的喜好等功能。
         *
         * (五)sorted set
         * 1.sorted set多了一个权重参数score,集合中的元素能够按score进行排列。
         * 2.可以做排行榜应用，取TOP N操作。
         *
         */
    }
}
